// Plop 入口文件，需要导出一个函数
// 此函数接收一个 plop 对象，其提供一系列的工具函数用于创建生成器任务

module.exports = plop => {
    // 第一个为生成器的名字，第二个为生成器的配置选项
    plop.setGenerator('component', {
        // 生成器描述
        description: 'create a component',
        // 指定工作时发出的命令行问题
        prompts: [
            {
                type: 'input',
                name: 'name',
                message: 'component name',
                // 该命令的默认答案
                default: 'MyComponent'
            }
        ],
        // 生成器完成过后执行的动作
        actions: [
            {
                // 代表添加文件
                type: 'add',
                // 添加到的目标地址
                path: 'src/components/{{name}}/{{name}}.js',
                // 本次添加文件的模板文件
                templateFile: 'plop-templates/component.hbs'
            },
            {
                // 代表添加文件
                type: 'add',
                // 添加到的目标地址
                path: 'src/components/{{name}}/{{name}}.css',
                // 本次添加文件的模板文件
                templateFile: 'plop-templates/component.css.hbs'
            },
            {
                // 代表添加文件
                type: 'add',
                // 添加到的目标地址
                path: 'src/components/{{name}}/{{name}}.test.js',
                // 本次添加文件的模板文件
                templateFile: 'plop-templates/component.test.hbs'
            },
        ]
    })
}